home *** CD-ROM | disk | FTP | other *** search
/ Retro Gamer 15 / Retro Gamer 15.iso / Atari Emulators / Z26V213X.ZIP / README.TXT < prev    next >
Encoding:
Text File  |  2004-05-23  |  40.2 KB  |  988 lines

  1. z26 -- An Atari 2600 Emulator (2.13) -- May 23, 2004
  2.     Home Page: http://www.whimsey.com/z26 -- Contact: z26@whimsey.com
  3.  
  4. Copyright/License
  5.     z26 is Copyright 1997-2004 by John Saeger and is a derived work with
  6.     many contributors. z26 is released subject to the terms and conditions
  7.     of the GNU General Public License Version 2 (GPL). z26 comes with no
  8.     warranty. Please see the included COPYING.TXT for details. Source code
  9.     for the current release is available at the home page listed above.
  10.  
  11. What's new in version 2.13?
  12.     *    Converted MASM assembly code to NASM syntax, preparatory to the...
  13.  
  14.     *    ...Linux port! z26 can now be compiled for Windows, Linux, or just
  15.          about any other x86 environment that supports a UNIX-like build
  16.          environment with GCC. The Linux support is solid; preliminary
  17.          testing has been done on FreeBSD and BeOS. There are a few
  18.          Linux-specific command-line options, see below. A Linux static
  19.          binary is available for those who don't wish to compile z26 from
  20.          source.
  21.  
  22.     *    Improved documentation. We now have a PDF manual and a man page for
  23.          Linux.
  24.  
  25.     *    Added ability to selectively disable graphical objects. This
  26.          feature is mostly intended for developers.
  27.  
  28.     *    We now lock the audio device before filling the sound queue. This
  29.          should prevent the long startup times that were plaguing some
  30.          Windows users. It also should allow z26 to run correctly on
  31.          multi-processor machines.
  32.  
  33.     *    Also we made the INTIM timer random at the emulator start again.
  34.          Berzerk should start with a different screen each time you play it
  35.          now.
  36.  
  37.     *    Other than the audio device locking and the random INTIM timer,
  38.          version 2.13 for Windows should behave identically to version 2.12.
  39.          If this isn't the case, please let us know.
  40.  
  41.     *    Thanks to Brian Watson, Eckhard Stolberg, and James Wilkinson for
  42.          help with this version!
  43.  
  44. Introduction
  45.     This version of z26 is designed to run natively on 32-bit x86 Windows
  46.     platforms. It provides excellent sound quality, and correct frame
  47.     synchronization on Windows-XP platforms.
  48.  
  49. System Requirements
  50.   Windows
  51.  
  52.     Operating System -- z26 will run on 32-bit x86 Windows platforms
  53.     starting with Windows 95, but best results are obtained with Windows 98
  54.     or later. For the NT based operating systems, XP or later is
  55.     recommended. There are sometimes problems with Win2K.
  56.  
  57.     Direct-X -- For best results, get the latest and greatest. In particular
  58.     you may want to be able to run DXDIAG.EXE to adjust the frame rate. This
  59.     is not supported in older versions of Direct-X.
  60.  
  61.     SDL -- You will need a copy of SDL.DLL either in the directory that you
  62.     place z26, or in the Windows directory. This .DLL is included in the
  63.     .zip file along with the z26 executable.
  64.  
  65.     Processor -- If you have a good quality video card of fairly recent
  66.     vintage, a Pentium-166 with MMX or a K6-166 is sufficient to run
  67.     everything we've tried at full speed in a full-screen video mode. It
  68.     takes more horsepower to run games in a windowed video mode.
  69.  
  70.     Video Card -- Some old video cards, like the S3 Trio or the S3 Virge are
  71.     not as good at page-flipping as more recent video cards. A faster
  72.     processor can help to make up for the deficiency, but a video card that
  73.     was designed with Direct-X in mind is desireable.
  74.  
  75.     Sound Card -- Even an old Soundblaster 16 works great. The majority of
  76.     sound cards that have Direct-X support work fine. Occasional problems
  77.     have been reported with some less popular sound cards like the Lynx One.
  78.  
  79.   Linux
  80.  
  81.     Distribution -- z26 is designed to be distribution-neutral. The static
  82.     binary release doesn't depend on any particular libraries being
  83.     installed on your system. It has been tested on at least: Slackware 8.0
  84.     and 8.1, Mandrake 9.2, Red Hat 9.0, and Knoppix 3.4. You should also be
  85.     able to build from source on any distribution, provided you have GCC
  86.     (tested with versions 2.95.3, 3.2, and 3.3.1), NASM (at least version
  87.     0.98.33), and SDL (tested with versions 1.2.3 and 1.2.7).
  88.  
  89.     Linux kernel -- A 2.6 kernel is recommended, but not required. If you
  90.     want to use the -T4 (/dev/rtc) accurate timing option, you will need
  91.     either 2.6 or else 2.4.19 or newer (actually, 2.4.18 and earlier would
  92.     work, but you'd have to run z26 as root, which is a *Bad Idea*).
  93.  
  94.     Video Driver -- Most people will use X11 (XFree86). z26 has also been
  95.     tested with the Linux fbcon driver. Any display device supported by SDL
  96.     should be usable, though some may be faster than others. For X11, the
  97.     XVideo extension is highly recommended. If you experience poor
  98.     performance in full-screen modes, you will definitely want to enable
  99.     XVideo or DGA 2.0, if your video card supports them.
  100.  
  101.     SDL -- The static binary is linked with SDL 1.2.7, and does not (can
  102.     not) use any SDL shared libraries installed on your system. If you are
  103.     building from source, you will need the SDL headers and sdl-config
  104.     program (most distributions provide this in a package called sdl-dev or
  105.     sdl-devel).
  106.  
  107.     Processor -- If your video card is well-supported under X (or whatever
  108.     display device SDL is using), you shouldn't need a very fast processor.
  109.     The slowest machine we've tested is a Celeron/366, which is capable of
  110.     running z26 at full speed in windowed and fullscreen modes with either
  111.     -T3 or -T4 timing. Depending on your configuration, full-screen modes
  112.     may be faster or slower than windowed modes (this is different from the
  113.     Windows version).
  114.  
  115.     Video Card -- See `Video Driver'. Basically, anything made in the past 5
  116.     years should be usable to at least some degree.
  117.  
  118.     Sound Card -- Anything supported by the Linux kernel should be OK,
  119.     however there are issues with certain OSS drivers. If you get no sound,
  120.     or very quiet sound, you should try ALSA instead (comes with 2.6
  121.     kernels, available for 2.4 kernels in most modern distributions). If all
  122.     else fails, try the -S option: it should make the sound louder, but may
  123.     cause distortion (or may not, depends on your driver).
  124.  
  125.   Other OS
  126.  
  127.     z26 should build on any OS that runs on the x86 platform and has SDL
  128.     available.
  129.  
  130.     Under FreeBSD (tested on version 4.9), you can use devel/sdl11,
  131.     devel/sdl_ldbad, and devel/nasm from the Ports collection, if you want
  132.     to build a native FreeBSD binary. You could also try to use FreeBSD's
  133.     Linux binary emulation to run the static Linux binary (I haven't tried
  134.     this. If you do, let me know if it works or not).
  135.  
  136.     The requirements for other x86 operating systems should be similar to
  137.     the Linux requirements. Basically, SDL handles the sound and video
  138.     issues, so if other SDL apps work on your OS, z26 should, too. If the
  139.     framerate is too fast/slow, try the -T3 timing option.
  140.  
  141.     Since large portions of z26 are written in x86 assembly, you won't be
  142.     able to compile it for non-x86 platforms. Unfortunately, this means no
  143.     MacOS/OSX (or Sparc/Solaris, or SGI IRIX, or RS/6000...) port for now.
  144.     We will be rewriting the assembly code in C over the next few releases,
  145.     so at some point z26 will become truly cross-platform.
  146.  
  147. Installation
  148.   Windows
  149.  
  150.     Unzip the z26 executable into the directory that contains the ROM images
  151.     that you want to run. If you are uncomfortable using the command line
  152.     prompt, you should create a shortcut to z26.exe on your desktop. This
  153.     way you can drag and drop ROM images to the z26 shortcut to run them.
  154.  
  155.     You may also want to run DXDIAG.EXE to force Direct-X to run games at
  156.     60fps and set up monitor synchronization by using the -r command line
  157.     switch. This way subtle graphics effects used by many Atari games will
  158.     be emulated properly if you're running in a full-screen video mode.
  159.  
  160.   Linux
  161.  
  162.             ***NOTE: Linux binaries are not yet provided
  163.  
  164.     Binary installation - Extract the .tar.gz archive and run the install.sh
  165.     script. This will copy the executable and man page to */usr/local/bin*
  166.     and */usr/local/man/man1*, respectively.
  167.  
  168.     Building from source - To build and install the dynamic executable and
  169.     man page (most people will want this, and root access is generally
  170.     required):
  171.  
  172.             make linux
  173.             make install
  174.  
  175.     To build a dynamically-linked executable, but not install it in
  176.     */usr/local/bin*, use the command:
  177.  
  178.             make linux
  179.  
  180.     To build a statically-linked executable:
  181.  
  182.             make linux-static
  183.  
  184.     To build the text, manpage, and PDF versions of the manual:
  185.  
  186.             make docs
  187.  
  188.     If you're using a desktop environment such as KDE or Gnome, you might
  189.     want to copy the z26_icon.png to your icons directory and set it as the
  190.     icon for the z26 executable.
  191.  
  192. Startup
  193.     If you have created a shortcut to z26 on your desktop, just drag and
  194.     drop a ROM image from the Windows explorer *or equivalent, on Linux*
  195.     onto the shortcut. The game will then run. Otherwise you can run z26
  196.     from the command line prompt. Type
  197.  
  198.             z26 filename
  199.  
  200.     where filename is the name of a "standard" Atari 2600 .bin file. For
  201.     example:
  202.  
  203.             z26 demonatk.bin
  204.  
  205.     will run Demon Attack. If you don't include the .bin extension, z26 will
  206.     automatically append one for you. So you can also type:
  207.  
  208.             z26 demonatk
  209.  
  210.     to run Demon Attack.
  211.  
  212.     You may also include a variety of command line switches to modify the
  213.     behavior of z26. These are described later.
  214.  
  215. Running z26
  216.     Once you are running a game, the keyboard controls things as follows.
  217.     You may find more information about these things later in the document.
  218.  
  219.   Console Controls
  220.  
  221.          F1 -- Reset
  222.          F2 -- Select
  223.          F3 -- B/W
  224.          F4 -- Color
  225.          F5 -- P0 easy
  226.          F6 -- P0 hard
  227.          F7 -- P1 easy
  228.          F8 -- P1 hard
  229.  
  230.   Paddles
  231.  
  232.        Ctrl -- fire paddle 0   Use left and right arrows to move
  233.      RShift -- fire paddle 1   Use up and down arrows to move
  234.           n -- fire paddle 2   Use 's' and 'f' to move
  235.           v -- fire paddle 3   Use 'e' and 'd' to move
  236.  
  237.   Player 0 Joystick
  238.  
  239.        Ctrl -- fire  Use the arrow keys to move.
  240.           / -- trigger (booster grip)
  241.      RShift -- booster (booster grip)
  242.  
  243.      The mouse may also be used to control the Player 0 joystick.
  244.  
  245.   Player 1 Joystick
  246.  
  247.           n -- fire 
  248.           s -- left 
  249.           e -- up 
  250.           f -- right 
  251.           d -- down
  252.           b -- trigger (booster grip)
  253.           v -- booster (booster grip)
  254.  
  255.   Player 0 Driving Controller
  256.  
  257.             Ctrl -- accelerate    
  258.      right arrow -- turn clockwise
  259.       left arrow -- turn counter-clockwise
  260.  
  261.   Player 1 Driving Controller
  262.  
  263.           n -- accelerate
  264.           f -- turn clockwise
  265.           s -- turn counter-clockwise
  266.  
  267.   Keyboard Controllers
  268.  
  269.             Left Port                     Right Port
  270.  
  271.      7 -- 1   8 -- 2   9 -- 3      1 -- 1   2 -- 2   3 -- 3
  272.      u -- 4   i -- 5   o -- 6      q -- 4   w -- 5   e -- 6
  273.      j -- 7   k -- 8   l -- 9      a -- 7   s -- 8   d -- 9
  274.      m -- *   , -- 0   . -- #      z -- *   x -- 0   c -- #
  275.  
  276.   Compumate Keyboard
  277.  
  278.      Use PC keyboard columns 1 - 0
  279.        Ctrl -- FUNC
  280.      LShift -- SHIFT
  281.  
  282.   Mindlink Controller
  283.  
  284.      Use the mouse to move horizontally.
  285.  
  286.      button -- start the game
  287.         Tab -- switch between player 0 and player 1
  288.  
  289.   Mouse Handling in Paddle emulation
  290.  
  291.         Tab -- switch between  horiz. normal, vert. normal
  292.                and  horiz. reversed, and vert reversed
  293.  
  294.   Kid Vid Controller
  295.  
  296.      Use keys  1  2  3  to start the corresponding tape.
  297.      F1 stops and rewinds the tape.
  298.  
  299.   Trak-Ball Controllers
  300.  
  301.      The PC-mouse works just like the Atari Trak-Ball in Trak-Ball mode.
  302.  
  303.   Pausing a Game
  304.  
  305.      Backspace -- pause
  306.          Enter -- resume
  307.  
  308.   Video Modes
  309.  
  310.       Alt-0 -- Mode 0
  311.       Alt-1 -- Mode 1
  312.       Alt-2 -- Mode 2
  313.       Alt-3 -- Mode 3
  314.       Alt-4 -- Mode 4
  315.       Alt-5 -- Mode 5
  316.       Alt-6 -- Mode 6
  317.       Alt-7 -- Mode 7
  318.       Alt-8 -- Mode 8
  319.  
  320.      Alt-Enter -- switch between full-screen and windowed video modes
  321.  
  322.   Scrolling the Screen
  323.  
  324.        PgUp -- scroll the screen up
  325.        PgDn -- scroll the screen down
  326.        Home -- return to the default screen position
  327.  
  328.   Screen Capture
  329.  
  330.           = -- capture screen to PCX file
  331.  
  332.   Trace Mode
  333.  
  334.         F11 -- resume tracing
  335.         F12 -- pause tracing
  336.  
  337.   Palette Change
  338.  
  339.           - -- switch between NTSC -> PAL -> SECAM palettes
  340.  
  341. Configuring z26
  342.     z26 has many options that are set with command line switches. You can
  343.     use a text editor like Notepad to create a file called z26.cli in the
  344.     directory that contains your ROM images to set these options. Otherwise
  345.     if you type z26 with some command line switches and don't include a
  346.     filename, the command line switches are recorded in z26.cli
  347.     automatically as emulator defaults. These defaults can still be
  348.     overridden with command line switches that you include on command lines
  349.     that include a filename.
  350.  
  351.     Note that spaces are not allowed between an option and its argument.
  352.     Example: to force the framerate to 60, use -r60, not -r 60.
  353.  
  354. Command Line Switch Summary
  355.     More detailed information about the meaning of the switches may be found
  356.     later in the document.
  357.  
  358.       -)CC -- select controller on left port
  359.               CC = JS -- joystick
  360.               CC = PC -- paddle controller
  361.               CC = KP -- keypad
  362.               CC = DC -- driving controller
  363.               CC = LG -- lightgun
  364.               CC = CM -- CompuMate keyboard
  365.               CC = KV -- Kid Vid tape player
  366.               CC = ML -- Mindlink controller
  367.               CC = ST -- ST mouse / CX-80 Trak-Ball
  368.               CC = TB -- CX-22 Trak-Ball
  369.               CC = AM -- Amiga mouse
  370.               CC = NC -- no controller connnected
  371.  
  372.       -(CC -- select controller on right port (CC: see above)
  373.  
  374.         -! -- run interlaced games
  375.  
  376.         -0 -- start with player 0 hard
  377.  
  378.         -1 -- start with player 1 hard
  379.  
  380.         -4 -- allow all 4 directions on the joystick to be pressed
  381.               simultaneously
  382.  
  383.         -b -- start in black and white
  384.  
  385.         -B -- enable screen captures to .bmp files.  Works with
  386.               phosphorescent games.
  387.  
  388.        -cN -- color palette (N=0 -- NTSC  N=1 -- PAL  N=2 -- SECAM)
  389.  
  390.        -dN -- DSP processing level (N=1 -- low  N=2 -- high)
  391.  
  392.        -eN -- enable narrow video modes (N=1 or N=2)
  393.  
  394.        -fN -- enable phosphorescent effect (N=0 through N=100,
  395.               77=default) The parameter is the frame mixing
  396.               coefficient (0 through 100) which specifies how much
  397.               the bright pixel is favored over the dim pixel when
  398.               mixing the value of two frames. The default is 77. If
  399.               you specify a value greater than 100 or less than zero,
  400.               the effect is disabled for games that are automatically
  401.               recognized as needing this effect, like Yars Revenge.
  402.               If N<0 or N>100 the effect is disabled for games that
  403.               are automatically recognized as needing this effect like
  404.               Yars Revenge.
  405.  
  406.        -gN -- override game type
  407.               N=1  -- Commavid extra RAM
  408.               N=2  -- 8K Superchip
  409.               N=3  -- 8K Parker Brothers
  410.               N=4  -- 8K Tigervision
  411.               N=5  -- 8K Decathlon & Robot Tank
  412.               N=6  -- 16K Superchip
  413.               N=7  -- 16K M-Network
  414.               N=8  -- 32K Superchip
  415.               N=9  -- 8K Atari -- banks swapped
  416.               N=10 -- Spectravideo Compumate
  417.               N=11 -- 32K - 512K Extended Tigervision
  418.               N=12 -- 8K UA Ltd.
  419.               N=13 -- 64K Homestar Runner / Paul Slocum
  420.  
  421.        -hN -- set the maximum number of scanlines to render (height)
  422.  
  423.        -iC -- [changed] inactivate PC-controller
  424.               (C = K -- keyboard, M -- mouse, J -- joystick,
  425.                S -- Stelladaptor)
  426.  
  427.        -jN -- [removed]
  428.  
  429.        -kN -- [removed] 
  430.  
  431.        -pN -- paddle sensitivity (N=1 to 15 -- keyboard only)
  432.  
  433.        -PN -- enable lower sesitivity for PC joysticks / Stelladaptor
  434.               in paddle emulation, and delay the paddle read-bit
  435.               flipping by N scanlines
  436.  
  437.        -mN -- paddle to emulate with mouse (N=0 to 3)
  438.  
  439.      -m1XY -- emulate two paddles with mouse (X and Y = 0 to 3)
  440.  
  441.        -MN -- enable mouse capture in a window -- allows mouse full
  442.               control of games in windowed video modes just like full
  443.               screen modes  (N=0 -- off, N=1 -- on)  default = on
  444.  
  445.         -G -- Grab all mouse and keyboard events. Use this if your window
  446.               manager's hotkeys conflict with z26 hotkeys. This option
  447.               is primarily intended for Linux/UNIX systems, but may be
  448.               useful on Windows as well.
  449.  
  450.        -lN -- [changed] adjust lightgun by N cycles
  451.  
  452.        -aN -- adjust lightgun emulation by N scanlines
  453.  
  454.         -n -- show scanline count and FPS on game display
  455.  
  456.         -o -- simulate PAL color loss
  457.  
  458.         -q -- quiet
  459.  
  460.        -sN -- specifies the size of the sound queue
  461.              (default = 4608   --   max = 65536)
  462.          
  463.         -r -- Windows: run at monitor speed
  464.               Linux:   This option doesn't work, and is disabled.
  465.  
  466.        -rN -- run at N frames per second. Give a large number
  467.               (e.g. -r10000) to run the emulator as fast as possible.
  468.               This option does work on Linux.
  469.  
  470.         -R -- Windows: synchronize with sound instead of display
  471.               Linux:   This option doesn't yet work correctly,
  472.                        and is disabled.
  473.  
  474.         -t -- write code trace to z26.log. Warning: These log files
  475.               get ENORMOUSLY large. Try not to run out of disk space.
  476.  
  477.         -tt -- Same as -t, but start emulator with tracing disabled.
  478.                Press F11 to enable trace while emulator is running,
  479.                or F12 to disable.
  480.  
  481.        -uN -- start scanning game at line N
  482.  
  483.        -vN -- start game in video mode N full screen
  484.  
  485.       -v1N -- start game in video mode N in a window
  486.  
  487.         -w -- [changed] swap Atari controller ports for all
  488.               controller types
  489.  
  490.         -x -- print checksum of cartridge
  491.  
  492.        -yN -- [removed]
  493.  
  494.         -z -- disable the fast copy routines
  495.  
  496.   Linux (and others) options
  497.  
  498.         -S -- OSS Sound hack.
  499.  
  500.        -TN -- Select timing mode for frame sync
  501.               N=1 -- Use SDL for timing. Runs too slow on
  502.                      Linux 2.4 kernels, too fast on Linux 2.6.
  503.               N=2 -- Use UNIX select() call for timing. More
  504.                      accurate than SDL, but may oscillate between
  505.                      too slow and too fast on slower systems.
  506.               N=3 -- Use `CPU Hog' timing. z26 will busy-wait in
  507.                      a loop polling the system clock until it's
  508.                      time to start the next frame. This is very
  509.                      accurate, but not very friendly to other
  510.                      processes on your system.
  511.               N=4 -- Use /dev/rtc timing (Linux only). This is the
  512.                      most accurate timing mode available, but
  513.                      requires you to configure your RTC driver to
  514.                      allow z26 to set the correct clock frequency.
  515.                      As root, run the command:
  516.  
  517.                      echo "8192" > /proc/sys/dev/rtc/max-user-freq
  518.  
  519.                      You should add this command to your rc.local
  520.                      script (or equivalent).
  521.  
  522. Atari Controller Support
  523.   Joystick
  524.  
  525.     PC or USB joysticks and gamepads are supported to the extent that
  526.     Direct-X and SDL supports them for playing joystick games. The mouse and
  527.     PC keyboard may also be used. Some games like raiders.bin use the
  528.     "wrong" joystick. To reverse the joysticks use the -w command line
  529.     switch.
  530.  
  531.   Trak-Ball
  532.  
  533.     Atari sold a Trak-Ball that could be used to play joystick games. z26
  534.     supports the use of a mouse or PC trakball to do the same thing for
  535.     joystick games. If you have a mouse or PC trackball, support is
  536.     automatic. Optical trackballs like the Logitech Marble Mouse are great
  537.     for this. Also z26 now emulates the various types of Atari Trak-Balls in
  538.     their native modes. This is done with the PC mouse as well.
  539.  
  540.   Paddles
  541.  
  542.     z26 supports the use of the mouse or PC trackball to play paddle games.
  543.     If you want to change which paddle is emulated with the mouse use the
  544.     -mN command line switch. You can change which direction the mouse must
  545.     be moved in to get paddle motion by pressing the <Tab> key on the
  546.     keyboard while you're playing a game. You can emulate two paddles with a
  547.     mouse with one paddle on each axis. Use the -m1xy command line switch
  548.     where x and y are the paddle numbers to emulate on that axis. You can
  549.     use the keyboard to play paddle games. If z26 doesn't automatically
  550.     support a game as a paddle game you must specify the -)PC or -(PC
  551.     command line switches to get paddle support on the left or right Atari
  552.     port.
  553.  
  554.   Light Gun
  555.  
  556.     z26 supports light gun games (Sentinel, Shooting Gallery) with the
  557.     mouse.
  558.  
  559.   Keyboard Controllers
  560.  
  561.     z26 enables the keyboard/touch pad/keypad for recognized games that use
  562.     them.
  563.  
  564.   Driving Controllers
  565.  
  566.     z26 suppports the game that uses the driving controller (Indy 500) from
  567.     the keyboard.
  568.  
  569.   Booster Grip
  570.  
  571.     z26 supports the booster grip game (Omega Race) from the keyboard and
  572.     the PC joystick with 3 or more buttons.
  573.  
  574.   Kid Vid Tapes
  575.  
  576.     z26 supports the Kid Vid games (Smurfs Save the Day and Berenstain
  577.     Bears) automatically. Press 1, 2, or 3 to select the corresponding tape.
  578.     F1 rewinds the tape. In addition to the rom images, you need the wave
  579.     files with the music in the same directory as z26. The files are named:
  580.  
  581.     Berenstain Bears:
  582.  
  583.        KVB1.WAV,  KVB2.WAV,  KVB3.WAV
  584.  
  585.     Smurfs Save the Day:
  586.  
  587.        KVS1.WAV,  KVS2.WAV,  KVS3.WAV
  588.  
  589.     Both:
  590.  
  591.        KVSHARED.WAV
  592.  
  593.     You can also play the games without the music, but it's much less fun.
  594.  
  595. Stelladaptor support
  596.     z26 assumes that a PC joystick with only two buttons and two axis is the
  597.     Stelladaptor device, that lets you connect Atari joysticks, driving
  598.     controllers and paddles to your PC's USB port. If you want to use a
  599.     different 2-button/2-axis joystick with z26 and experience problems with
  600.     the emulation of some Atari controller, you can disable the Stelladaptor
  601.     support with the -iS command line switch. Please note that the
  602.     Stelladaptor is seen as a joystick too, so disabling joysticks with the
  603.     -iJ switch will also disable the Stelladaptor.
  604.  
  605. Inactivating PC controller support
  606.     Some Atari controllers are simulated with more than one PC controller.
  607.     If you are experiencing problems with this, you can disable one or more
  608.     PC controllers for these Atari controller simulations. For example you
  609.     might want to disable the PC mouse when you use the keyboard to play an
  610.     Atari-joystick game, so that accidently pushing the mouse doesn't cause
  611.     any unwanted movement. Also you might want to disable the PC joystick
  612.     for paddle games, because the PC joystick always overrides all other PC
  613.     controllers in the paddle simulation when one is plugged into the PC.
  614.     Please look at the following table to find out which Atari controllers
  615.     are simulated with which PC controller.
  616.  
  617.       Atari/PC          keyboard  mouse  joystick  Stelladaptor
  618.       ----------------------------------------------------------
  619.       joystick      JS      x       x       x       x
  620.       paddle        PC      x       x       x       x
  621.       keypad        KP      x       -       -       -
  622.       driving       DC      x       x       x       x
  623.       lightgun      LG      -       x       -       -
  624.       Compumate     CM      x       -       -       -
  625.       Kid Vid       KV      x       -       -       -
  626.       Mindlink      ML      -       x       -       -
  627.       ST mouse      ST      -       x       -       -
  628.       Trak-Ball     TB      -       x       -       -
  629.       Amiga mouse   AM      -       x       -       -
  630.  
  631.     Please note that inactivating the PC controller only works for Atari
  632.     controllers that are simulated by more than one PC controller. Also note
  633.     that the Stelladaptor is just a special case of the PC joystick. So
  634.     inactivating joystick support will also disable Stelladaptor support.
  635.  
  636. Video Modes
  637.     Note that by adding 10 to the video mode number z26 will run in a
  638.     windowed mode. Otherwise z26 runs full-screen. On some systems, windowed
  639.     modes are very slow. So for maximum performance you should run
  640.     full-screen. Adding 20 to the video mode number causes the game to run
  641.     full-screen with the number of bits per pixel as your current desktop.
  642.     This allows the phosphorescent effect to work in full-screen video
  643.     modes.
  644.  
  645.     Mode 0 -- 400x300 (default)
  646.  
  647.     Mode 1 -- 320x240
  648.  
  649.     Mode 2 -- 320x200
  650.  
  651.     Mode 3 -- 800x600 scanline/interlaced
  652.  
  653.     Mode 4 -- 640x480 scanline/interlaced
  654.  
  655.     Mode 5 -- 640x400 scanline/interlaced
  656.  
  657.     Mode 6 -- 800x600 double scanline
  658.  
  659.     Mode 7 -- 640x480 double scanline
  660.  
  661.     Mode 8 -- 640x400 double scanline
  662.  
  663.     Modes 3-5 simulate the TV scanline effect when the -! command line
  664.     switch is not specified. If the -! command line switch is specified,
  665.     they run games interlaced by updating every other scanline every other
  666.     frame. They also play the interlaced demos like cube_imp.bin correctly.
  667.  
  668.     Modes 6-8 appear similar to modes 0-2 except that they are larger.
  669.  
  670. Switching Video Modes on the Fly
  671.     You may change video modes while playing a game by pressing one of the
  672.     number keys on the keyboard (not the keypad). Pressing <Alt-0> through
  673.     <Alt-8> is supported. Pressing <Alt-Enter> will switch between windowed
  674.     and full-screen modes.
  675.  
  676. Adjusting Vertical Position
  677.     You can scroll games up and down on the display with the <PgUp> and
  678.     <PgDn> keys. You can return to the default display position by pressing
  679.     the <Home> key. You can force the game to start displaying from a
  680.     particular scan line from the command line with the -uN command line
  681.     option. You can set the maximum number of scanlines to render with the
  682.     -hN command line switch.
  683.  
  684.     Note that the <PgUp> and <PgDn> scrolling doesn't work for traffic.bin
  685.     or pharhcrs.bin.
  686.  
  687. Forcing Black and White mode
  688.     You can force a game to start in black and white mode with the -b
  689.     command line switch. Note that this doesn't mean that the game will
  690.     actually be in black and white, this is up to the game itself to
  691.     support.
  692.  
  693. Colors
  694.     z26 supports three different sets of colors. The most common games
  695.     shipped in North America use the so called NTSC colors. Games shipped in
  696.     other parts of the world use the so called PAL colors. z26 typically
  697.     detects the correct colors to use based on which scan line a game starts
  698.     displaying at. If the display starts at scan line 54 or higher, z26 uses
  699.     PAL colors, otherwise NTSC colors are used. There are some exceptions,
  700.     but I'm not an expert on which games are PAL and which ones are NTSC so
  701.     you can override the colors chosen by z26 with the -cN command line
  702.     switch. -c0 forces NTSC, and -c1 forces PAL. Feel free to let me know if
  703.     you find a game that z26 picks the wrong colors for.
  704.  
  705.     z26 also supports the bug in PAL consoles that causes the display to
  706.     display a monochrome image if a game has the wrong number of scanlines.
  707.     This feature is enabled with the -o command line switch. Some of the
  708.     32-in-1 games which were poorly done PAL hacks show this effect.
  709.  
  710.     SECAM colors can be selected with -c2. In the time before the crash
  711.     Atari created most of it's PAL games in such a way that the B/W switch
  712.     would enable SECAM compatible colors. So nostalgic gamers from France
  713.     can play PAL ROMs with -b and -c2 command line options enabled.
  714.  
  715. Adjusting Game Speed
  716.     By default, games run at a speed that is determined by how many
  717.     scanlines the game generates per frame. This provides correct play speed
  718.     for NTSC and PAL games automatically. If you want to synchronize games
  719.     with the monitor so that games like Yars Revenge play with a minimum of
  720.     visual artifacts use the -r command line switch. You may want to run
  721.     DXDIAG.EXE to force Direct-X to run video modes at 60fps which is the
  722.     normal speed for NTSC games. Note that monitor synchronization only
  723.     works in full screen modes. Windowed modes fall back to the normal
  724.     synchronization method.
  725.  
  726.     You may also specify a parameter to the -r command line switch to choose
  727.     a non-standard play speed. This works both in windowed and full screen
  728.     modes.
  729.  
  730. Measuring Emulator Performance
  731.     The -n command line switch causes the number of frames per second to be
  732.     displayed during game play. If you choose the -r command line switch
  733.     with a large number the emulator will run at full speed.
  734.  
  735. Digital Signal Processing
  736.     z26 supports digital signal processing (DSP) on the sound. This is to
  737.     reduce distortion on some clone sound cards, but also causes the sound
  738.     to more closely approximate the sound of an old TV set for those users
  739.     that prefer a more "classic" sound. To turn on DSP use the -dN command
  740.     line switch. If n=1 the setting is low, if n=2 the setting is high.
  741.  
  742. Fixing certain Linux sound problems
  743.     With certain sound hardware and drivers, the sound is missing or very
  744.     quiet on the Linux platform.
  745.  
  746.     This can usually be corrected by using the ALSA sound drivers instead of
  747.     the deprecated (but still very common) OSS drivers. If that doesn't
  748.     help, the -S option might.
  749.  
  750.     This option increases the sound volume, but may cause distortion. Use it
  751.     as a last resort. In future versions of z26, this option will change or
  752.     go away entirely.
  753.  
  754. Offbeat Cartridge Formats (Bank Switching)
  755.     z26 currently supports the following schemes:
  756.  
  757.     1. Standard 8K bank switching.
  758.  
  759.     2. Standard 16K bank switching.
  760.  
  761.     3. Atari Super-Chip.
  762.  
  763.     4. CBS Ram Plus.
  764.  
  765.     5. Parker Brothers 8K.
  766.  
  767.     6. TigerVision 8K.
  768.  
  769.     7. Activision FE 8K.
  770.  
  771.     8. Atari 32K.
  772.  
  773.     9. M-Network 16K.
  774.  
  775.     10. Pitfall II.
  776.  
  777.     11. Starpath.
  778.  
  779.     12. Megaboy.
  780.  
  781.     13. Compumate.
  782.  
  783.     14. Extended TigerVision (to 512K).
  784.  
  785.     15. UA Ltd. 8K.
  786.  
  787.     16. 'EF' 64K (used by Paul Slocum's Homestar Runner RPG.
  788.  
  789.     Support is automatic. z26 knows how to recognize cartridges. To override
  790.     the default selection you may use the -gN command line switch.
  791.  
  792.     For most Starpath games, the .bin file must be a multiple of 8448 bytes
  793.     big. To run multiload games you must concatenate the .bin files. A
  794.     command like this will do the trick:
  795.  
  796.     DOS:
  797.  
  798.      copy /b load1.bin+load2.bin+load3.bin+load4.bin mload.bin
  799.  
  800.     UNIX:
  801.  
  802.      cat load1.bin load2.bin load3.bin load4.bin > mload.bin
  803.  
  804.     Then run mload.bin in the emulator. z26 supports a maximum of 61 loads.
  805.  
  806.     z26 also supports the 6144 byte Starpath format.
  807.  
  808.     The Extended Tigervision (-g11) bankswitch scheme allows ROMs up to 512K
  809.     in size keeping the last bank fixed. All ROM images that are bigger than
  810.     64K and not a multiple of 8448 default to this scheme.
  811.  
  812.     The original Tigervision (-g4) bankswitch scheme also supports up to
  813.     512K games but with $1800-$1FFF as the fixed bank. This allows
  814.     compatibility with the Cuttle Cart for games up to 64K in size.
  815.  
  816. PCX Screen Capture
  817.     Pressing the = key during game play causes a .pcx file with a screen
  818.     image to be placed in your directory. Filenames are z26p0000.pcx,
  819.     z26p0001.pcx etc. The filename restarts at z26p0000.pcx causing old
  820.     versions to be replaced each time you restart the emulator.
  821.  
  822. Features for Game Developers
  823.     z26 supports some features to help game developers with their projects.
  824.     Trace mode, and the ability to count scanlines.
  825.  
  826.     Also, z26 allows game developers to disable individual graphics objects.
  827.     Remember, this is a feature for game developers, not for dirty cheaters
  828.     :)
  829.  
  830. Trace Mode
  831.     If you start z26 from the command line with the -t command line switch,
  832.     it automatically builds a text file called z26.log. This file is a log
  833.     of all instructions executed and shows some other interesting things
  834.     like the (frame number, scanline number, cpu cycle, tia clock), object
  835.     positions (P0, P1, M0, M1, BL), cpu flags, registers (A, X, Y, SP), the
  836.     program counter, the current instruction in hex, and a disassembled
  837.     listing of the instruction.
  838.  
  839.     Emulator performance slows down quite a bit while writing out this file
  840.     so you can turn off writing with F12 and turn it back on with F11 to
  841.     make it easier to get to the part of the game that you're interested in.
  842.  
  843. Counting Scan Lines
  844.     Choosing the -n command line switch causes the number of scan lines that
  845.     a game is using to be displayed. This is useful for testing PAL games so
  846.     you can avoid the PAL color loss bug. Of course you can also enable the
  847.     color loss by using the -o command line switch described above under
  848.     Colors.
  849.  
  850. Disabling Graphics
  851.     While the emulator is running, use the following keys:
  852.  
  853.             Alt+key  Effect
  854.                Z     Enable/disable player 0
  855.                X     Enable/disable player 1
  856.                C     Enable/disable missile 0
  857.                V     Enable/disable missile 0
  858.                B     Enable/disable ball
  859.                N     Enable/disable playfield
  860.                /     Enable all of the above (returns to default)
  861.  
  862.     There is currently no way to disable individual playfield registers
  863.     (PF0, PF1, PF2). Alt-N affects all 3 registers.
  864.  
  865.     This feature can be useful for testing a game you're writing, or for
  866.     analyzing a game someone else wrote. While a register is disabled, it's
  867.     invisible and unable to collide with other objects. This means you can
  868.     use it to cheat, too... but you wouldn't do that, would you?
  869.  
  870. Troubleshooting
  871.     Problem: z26 runs too slowly
  872.  
  873.     Solutions:
  874.  
  875.             - Try a different video mode
  876.  
  877. Warranty
  878.     BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
  879.     THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
  880.     OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
  881.     PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
  882.     EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  883.     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
  884.     ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
  885.     YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
  886.     NECESSARY SERVICING, REPAIR OR CORRECTION.
  887.  
  888.     IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
  889.     WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
  890.     REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR
  891.     DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
  892.     DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM
  893.     (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
  894.     INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
  895.     THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR
  896.     OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  897.  
  898. Tools
  899.     The Windows version of z26 is built with MinGW/Msys, with GCC and NASM.
  900.  
  901.     The Linux static binary version of z26 is built with Slackware 8.1.
  902.  
  903.     The documentation that you're reading now was generated from POD source,
  904.     using either pod2pdf (slightly modified), pod2text, or pod2man,
  905.     depending which format you're looking at. All of these are written in
  906.     Perl.
  907.  
  908.     Fonts were designed with CSEDIT by Matt Pritchard.
  909.  
  910. Credits
  911.     Eckhard Stolberg has made contributions to z26 that are almost too
  912.     numerous to count. He has been involved since the very early days and
  913.     the high quality emulation that z26 provides would certainly not have
  914.     been possible without his participation.
  915.  
  916.           Paul Robson -- Wrote original A26.
  917.             Ron Fries -- Original TIA sound emulation.
  918.      Ettore Perazzoli -- Helped with 6502 undocumented instructions.
  919.         Andreas Boose -- Also helped with 6502 undocumented
  920.                          instructions.
  921.      Wolfgang Lorentz -- 6502 diagnostics.
  922.           Bob Colbert -- Helped with object wrapping.
  923.          Piero Cavina -- Helped with multiple missiles.
  924.           Erik Mooney -- Helped with HMOVE blanks.
  925.          Kevin Horton -- Helped with bankswitching and
  926.                          Quadrun voice.
  927.             Dan Boris -- Atari 2600 schematics.
  928.        Matt Pritchard -- Font design tools.
  929.            Matt Conte -- Helped with Quadrun voice.
  930.           John Dullea -- Fast elegant graphics and helped with
  931.                          Pitfall II.
  932.         Bradford Mott -- Helped with object positioning
  933.                          (weird HMOVE).
  934.         Chris Wilkson -- Helped with Pitfall II.
  935.           Lee Krueger -- Helped with Kid Vid support, rare carts,
  936.                          and documentation.
  937.       Thomas Jentzsch -- Helped with trace mode, Kid Vid support
  938.                          and some fast video routines.
  939.       Henning Mueller -- Helped with CompuMate.
  940.       Christian Bogey -- Helped with SECAM colors.
  941.         Oliver Achten -- Helped with PAL colors.
  942.          Andrew Davie -- Provided Extended Tigervision bankswitch
  943.                          demos.
  944.           Paul Slocum -- Provided EF bankswitch demo.
  945.             Billy Eno -- Provided interleaved display demo.
  946.          Adam Wozniac -- Helped with TIA sound polynomials.
  947.         Matt Matthews -- Linux consulting.
  948.          Brian Watson -- Helped with Linux port, ASM-code and
  949.                          documentation conversion.
  950.       James Wilkinson -- Helped with BeOS port.
  951.  
  952.     Thanks to everyone else who has helped with comments, suggestions, bug
  953.     reports, information, supplies and testing:
  954.  
  955.     Junky, Kevin White, The Boatwrights, Miguel Guzman Centeno, Peter, Jay
  956.     C. Heil, Zoop, Rob Anderson, Zophar, Peter Vogels, Stephan, Xahji,
  957.     Ricardo Martinez Garza, Stephano Camarri, Peter Betz, Piero Cavina
  958.     (Oystron! Helped find multiple missile bug.), Nick S. Bensema, Erik
  959.     Mooney, Glenn Saunders, Abraham Velazquez, Christian Schaefers (Z-Type),
  960.     Freirias, Brian Deuel, Chris Platt, Israel Geron T., jose roberto
  961.     rodrigues, Dan Meyer, Martin Schaefer, Ummagumma, Digitoxin, Michael
  962.     Walden Jr. (The most elaborate suggestion list!), Gilamonster, Gerald
  963.     Gorman, Francisco Athens, Lex Nesta, Ben, Gerald Gray, Jose Pedro, Tadd
  964.     Underhill, Ejber Ozkan, Lord Mhath, Larry Scott, Brad Komgenick, Michael
  965.     J. Mika, Ettore Perazzoli (VICE), Stephan Eder, Andreas Boose (VICE),
  966.     David Gray, jimnav, Dr. Simone Zanella, Brad Thomas, Jeff Cockayne, Sam
  967.     Miller, EmrldSword, justin martin, Justin Scott, Jason Berk, Luis
  968.     Graterol, Ricardo Soto, Brian Smith, Sam Hard, Keith Merizalde, Nate
  969.     Marigoni, Kurt Woloch, GreenImp, M. C. Silvius, Matthew Conte
  970.     (Nofrendo), Jason Barisoff, Rick Vasquez, Marco Turconi, Kalik,
  971.     Christopher Warren, Curt Vendel, Roberto Sidney Teixeira, raverpup,
  972.     iCeFiRe, Chism, Sascha Reuter, Craig Tildesley, Michael Prentler, Cody
  973.     B, Thom Rechak, Cam, Jason, Keith Weisshar, Robin Gravel, Thom Bone,
  974.     Mrfriend, Edwin Helsloot, C J Biro, Michael Monson, Justin Rodriguez,
  975.     Francesco Azzurri, Greg Bendokus, Bruce Clarke, John Dullea (PCAE), Tim
  976.     Boston, Chris Ainsley, Ricardo Henrique Tabone, and Seth Kintigh.
  977.  
  978.     And thanks to Len Shikowitz for *complaining* well beyond the call of
  979.     duty. Definitely "the most obstinate, yet sincere, tester." :)
  980.  
  981.     At some point I stopped keeping the list of everyone who have sent me
  982.     suggestions up to date. I apologize for that. But thanks to the folks
  983.     who have continued to send in suggestions, even though they didn't make
  984.     the list.
  985.  
  986.     Thanks!!!
  987.  
  988.